<!DOCTYPE HTML>
<html lang="cn" class="light sidebar-visible" dir="ltr">
    <head>
        <!-- Book generated using mdBook -->
        <meta charset="UTF-8">
        <title>Rust优秀项目 - easy-to-code</title>


        <!-- Custom HTML head -->

        <meta name="description" content="">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta name="theme-color" content="#ffffff">

        <link rel="icon" href="favicon.svg">
        <link rel="shortcut icon" href="favicon.png">
        <link rel="stylesheet" href="css/variables.css">
        <link rel="stylesheet" href="css/general.css">
        <link rel="stylesheet" href="css/chrome.css">
        <link rel="stylesheet" href="css/print.css" media="print">

        <!-- Fonts -->
        <link rel="stylesheet" href="FontAwesome/css/font-awesome.css">
        <link rel="stylesheet" href="fonts/fonts.css">

        <!-- Highlight.js Stylesheets -->
        <link rel="stylesheet" id="highlight-css" href="highlight.css">
        <link rel="stylesheet" id="tomorrow-night-css" href="tomorrow-night.css">
        <link rel="stylesheet" id="ayu-highlight-css" href="ayu-highlight.css">

        <!-- Custom theme stylesheets -->


        <!-- Provide site root and default themes to javascript -->
        <script>
            const path_to_root = "";
            const default_light_theme = "light";
            const default_dark_theme = "navy";
        </script>
        <!-- Start loading toc.js asap -->
        <script src="toc.js"></script>
    </head>
    <body>
    <div id="mdbook-help-container">
        <div id="mdbook-help-popup">
            <h2 class="mdbook-help-title">Keyboard shortcuts</h2>
            <div>
                <p>Press <kbd>←</kbd> or <kbd>→</kbd> to navigate between chapters</p>
                <p>Press <kbd>S</kbd> or <kbd>/</kbd> to search in the book</p>
                <p>Press <kbd>?</kbd> to show this help</p>
                <p>Press <kbd>Esc</kbd> to hide this help</p>
            </div>
        </div>
    </div>
    <div id="body-container">
        <!-- Work around some values being stored in localStorage wrapped in quotes -->
        <script>
            try {
                let theme = localStorage.getItem('mdbook-theme');
                let sidebar = localStorage.getItem('mdbook-sidebar');

                if (theme.startsWith('"') && theme.endsWith('"')) {
                    localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
                }

                if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
                    localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
                }
            } catch (e) { }
        </script>

        <!-- Set the theme before any content is loaded, prevents flash -->
        <script>
            const default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? default_dark_theme : default_light_theme;
            let theme;
            try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
            if (theme === null || theme === undefined) { theme = default_theme; }
            const html = document.documentElement;
            html.classList.remove('light')
            html.classList.add(theme);
            html.classList.add("js");
        </script>

        <input type="checkbox" id="sidebar-toggle-anchor" class="hidden">

        <!-- Hide / unhide sidebar before it is displayed -->
        <script>
            let sidebar = null;
            const sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
            if (document.body.clientWidth >= 1080) {
                try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
                sidebar = sidebar || 'visible';
            } else {
                sidebar = 'hidden';
            }
            sidebar_toggle.checked = sidebar === 'visible';
            html.classList.remove('sidebar-visible');
            html.classList.add("sidebar-" + sidebar);
        </script>

        <nav id="sidebar" class="sidebar" aria-label="Table of contents">
            <!-- populated by js -->
            <mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
            <noscript>
                <iframe class="sidebar-iframe-outer" src="toc.html"></iframe>
            </noscript>
            <div id="sidebar-resize-handle" class="sidebar-resize-handle">
                <div class="sidebar-resize-indicator"></div>
            </div>
        </nav>

        <div id="page-wrapper" class="page-wrapper">

            <div class="page">
                <div id="menu-bar-hover-placeholder"></div>
                <div id="menu-bar" class="menu-bar sticky">
                    <div class="left-buttons">
                        <label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
                            <i class="fa fa-bars"></i>
                        </label>
                        <button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
                            <i class="fa fa-paint-brush"></i>
                        </button>
                        <ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
                            <li role="none"><button role="menuitem" class="theme" id="default_theme">Auto</button></li>
                            <li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
                            <li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
                            <li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
                            <li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
                            <li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
                        </ul>
                        <button id="search-toggle" class="icon-button" type="button" title="Search (`/`)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="/ s" aria-controls="searchbar">
                            <i class="fa fa-search"></i>
                        </button>
                    </div>

                    <h1 class="menu-title">easy-to-code</h1>

                    <div class="right-buttons">
                        <a href="print.html" title="Print this book" aria-label="Print this book">
                            <i id="print-button" class="fa fa-print"></i>
                        </a>

                    </div>
                </div>

                <div id="search-wrapper" class="hidden">
                    <form id="searchbar-outer" class="searchbar-outer">
                        <input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
                    </form>
                    <div id="searchresults-outer" class="searchresults-outer hidden">
                        <div id="searchresults-header" class="searchresults-header"></div>
                        <ul id="searchresults">
                        </ul>
                    </div>
                </div>

                <!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
                <script>
                    document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
                    document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
                    Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
                        link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
                    });
                </script>

                <div id="content" class="content">
                    <main>
                        <h1 id="rust优秀项目"><a class="header" href="#rust优秀项目">Rust优秀项目</a></h1>
<h2 id="序列化反序列化"><a class="header" href="#序列化反序列化">序列化/反序列化</a></h2>
<p><a href="https://github.com/serde-rs/serde">serde</a> 序列化/反序列化库</p>
<p><a href="https://github.com/serde-rs/json">serde_json</a> 序列化/反序列化库</p>
<p><a href="https://github.com/rkyv/rkyv">rkyv</a> 零拷贝序列化/反序列化库</p>
<p><a href="https://github.com/tokio-rs/prost">prost</a> protobuf库</p>
<p><a href="https://github.com/bincode-org/bincode">bincode</a> 序列化/反序列化库</p>
<p><a href="https://github.com/jean-airoldie/humantime-serde">humantime-serde</a> 人类可读的序列化/反序列化库</p>
<p><a href="https://github.com/google/flatbuffers">flatbuffers</a> 适用于游戏的序列化/反序列化库</p>
<h2 id="异步"><a class="header" href="#异步">异步</a></h2>
<p><a href="https://github.com/tokio-rs/tokio">tokio</a> 异步协程库</p>
<p><a href="https://github.com/Xudong-Huang/may">may</a> 有栈异步协程库</p>
<p><a href="https://github.com/smol-rs/smol">smol</a> 异步协程库</p>
<p><a href="https://github.com/async-rs/async-std">async-std</a> 异步协程库</p>
<p><a href="https://github.com/DataDog/glommio">glommio</a> 异步协程库</p>
<p><a href="https://github.com/bytedance/monoio">monoio</a> 异步协程库</p>
<p><a href="https://github.com/compio-rs/compio">compio</a> proactor异步协程库</p>
<h2 id="并发"><a class="header" href="#并发">并发</a></h2>
<p><a href="https://github.com/crossbeam-rs/crossbeam">crossbeam</a> 并发容器</p>
<p><a href="https://github.com/rayon-rs/rayon">rayon</a> 并发迭代器</p>
<p><a href="https://github.com/Amanieu/parking_lot">parking_lot</a> 并发原语</p>
<h2 id="web开发"><a class="header" href="#web开发">Web开发</a></h2>
<p><a href="https://github.com/hyperium/hyper">hyper </a> 异步Http底层库</p>
<p><a href="https://github.com/tokio-rs/axum">axum</a> 异步Http库</p>
<p><a href="https://github.com/actix/actix-web">actix-web</a> 异步Http库</p>
<p><a href="https://github.com/rwf2/Rocket">rocket</a> 异步Http库</p>
<p><a href="https://github.com/dakai-chen/boluo">boluo</a> 简洁的异步网络库</p>
<p><a href="https://github.com/tower-rs/tower">tower</a> http库</p>
<p><a href="https://github.com/tower-rs/tower-http">tower-http</a> http库</p>
<h2 id="sqlorm"><a class="header" href="#sqlorm">SQL/ORM</a></h2>
<p><a href="https://github.com/launchbadge/sqlx">launchbadge/sqlx</a> 异步SQL操作，支持MySQL、Sqlite、ProgresSQL</p>
<p><a href="https://github.com/SeaQL/sea-orm">sea-orm</a> 异步ORM框架，支持MySQL、Sqlite、ProgresSQL</p>
<p><a href="https://github.com/SeaQL/sea-query">sea-query</a> sea-orm底层驱动</p>
<p><a href="https://github.com/diesel-rs/diesel">diesel</a> ORM框架，支持MySQL、Sqlite、ProgresSQL</p>
<p><a href="https://github.com/weiznich/diesel_async">diesel-async</a> diesel的异步实现</p>
<p><a href="https://github.com/sfackler/r2d2">r2d2</a> 数据库连接池</p>
<p><a href="https://github.com/deadpool-rs/deadpool">deadpool</a> 异步数据库连接池</p>
<h2 id="爬虫"><a class="header" href="#爬虫">爬虫</a></h2>
<p><a href="https://github.com/causal-agent/scraper">scraper</a> 解析html文件</p>
<p><a href="https://github.com/mattsse/chromiumoxide">chromiumoxide</a> 调用chrome爬虫</p>
<p><a href="https://github.com/spider-rs/spider">spider_chrome</a> 调用chrome爬虫</p>
<p><a href="https://github.com/Vrtgs/thirtyfour">thirtyfour</a> 调用浏览器爬虫，支持谷歌、火狐</p>
<p><a href="https://github.com/seanmonstar/reqwest">reqwest</a> http请求库</p>
<p><a href="https://github.com/algesten/ureq">ureq</a> http请求库</p>
<h2 id="日志"><a class="header" href="#日志">日志</a></h2>
<p><a href="https://github.com/tokio-rs/tracing">tracing</a> 结构化日志和跟踪。</p>
<p><a href="https://github.com/rbatis/fast_log">fast_log</a> 日志</p>
<p><a href="https://github.com/rust-cli/env_logger">env_logger</a> 日志</p>
<p><a href="https://github.com/donnie4w/tklog">tklog </a>日志</p>
<p><a href="https://github.com/tikv/rust-prometheus">prometheus</a> 监控指标</p>
<h2 id="工具"><a class="header" href="#工具">工具</a></h2>
<p><a href="https://github.com/dtolnay/thiserror">thiserror</a> 框架代码错误处理库</p>
<p><a href="https://github.com/dtolnay/anyhow">anyhow</a> 业务代码错误处理库</p>
<p><a href="https://github.com/shepmaster/snafu">snafu</a> 强大的错误处理库</p>
<p><a href="https://github.com/rust-itertools/itertools">itertools</a> 迭代器增强库</p>
<p><a href="https://github.com/google/argh">argh</a> cli开发库</p>
<p><a href="https://github.com/clap-rs/clap">clap</a> cli开发库</p>
<p><a href="https://github.com/tokio-rs/bytes">bytes</a> 字节处理库</p>
<p><a href="https://github.com/rust-random/rand">rand</a> 随机数</p>
<p><a href="https://github.com/uuid-rs/uuid">uuid</a> 支持 UUID 生成和解析</p>
<p><a href="https://github.com/chronotope/chrono">chrono</a> 日期时间处理</p>
<p><a href="https://github.com/chronotope/chrono-tz">chrono-tz</a> 时区处理</p>
<p><a href="https://github.com/JelteF/derive_more">derive_more</a> 派生宏实现各种trait</p>
<p><a href="https://github.com/nrc/derive-new">derive-new</a> 派生宏简化结构体初始化函数</p>
<p><a href="https://github.com/elastio/bon">bon</a> 通过宏简化结构体初始化函数和函数调用</p>
<p><a href="https://github.com/mcarton/rust-derivative">derivative</a> 自定义派生的 trait 实现</p>
<p><a href="https://github.com/rust-lang/rustc-hash">rustc-hash</a> 非加密的高效哈希</p>
<p><a href="https://github.com/mitsuhiko/sha1-smol">sha1_smol</a> 非加密的高效哈希</p>
<p><a href="https://github.com/tikv/jemallocator">tikv-jemallocator</a> 用于优化内存分配</p>
<p><a href="https://github.com/image-rs/image">image</a> 图像处理</p>
<p><a href="https://github.com/rust-lang-nursery/lazy-static.rs">lazy_static</a> 全局变量</p>
<p><a href="https://github.com/matklad/once_cell">once_cell</a></p>
<p><a href="https://github.com/dtolnay/async-trait">async-trait</a> 异步trait增强库</p>
<p><a href="https://github.com/nashaofu/xcap">xcap</a> 跨平台截图</p>
<p><a href="https://github.com/ostrosco/device_query">device_query</a> 后台获取键盘事件</p>
<h2 id="数据分析机器学习"><a class="header" href="#数据分析机器学习">数据分析/机器学习</a></h2>
<p><a href="https://github.com/rust-ndarray/ndarray">ndarray</a> 数组和线性代数</p>
<p><a href="https://github.com/dimforge/nalgebra">nalgebra</a> 数组和线性代数</p>
<p><a href="https://github.com/rust-ndarray/ndarray-linalg">ndarray-linalg</a> 数组和线性代数算法库</p>
<p><a href="https://github.com/rust-random/rand">rand_distr</a> 随机库</p>
<p><a href="https://github.com/starkat99/half-rs">half</a> 支持 f16 类型</p>
<p><a href="https://github.com/brendanzab/approx">approx</a> 浮点数近似比较</p>
<p><a href="https://github.com/pykeio/ort">ort</a> ONNX 运行时，用于机器学习推理</p>
<p><a href="https://github.com/statrs-dev/statrs">statrs</a> 统计学函数库，提供常见概率分布（正态、泊松等）和统计工具</p>
<p><a href="https://github.com/rust-ml/linfa">linfa</a> 类似 Python 的 scikit-learn，提供分类、回归、聚类（如 SVM、K-Means）等算法</p>
<p><a href="https://github.com/smartcorelib/smartcore">smartcore</a> 轻量级机器学习库，包含基础算法（线性回归、决策树等）</p>
<p><a href="https://github.com/LaurentMazare/tch-rs">tch</a> PyTorch 的 Rust 绑定，可直接调用 PyTorch 的 GPU 加速和自动微分功能</p>
<p><a href="https://github.com/tracel-ai/burn">burn</a> 新兴的深度学习框架，支持动态计算图、多种后端（CPU/GPU）</p>
<p><a href="https://github.com/raskr/rust-autograd">autograd</a> 轻量级自动微分库，适合手动构建模型（如自定义神经网络）</p>
<p><a href="https://github.com/pola-rs/polars">polars</a> 高性能 DataFrame 库（类似 pandas），适合数据清洗和预处理</p>
<p><a href="https://github.com/tensorflow/rust">tensorflow</a> tensorflow的Rust绑定</p>
<h2 id="数据库"><a class="header" href="#数据库">数据库</a></h2>
<p><a href="https://github.com/PoloDB/PoloDB">PoloDB</a> 嵌入式数据库，类似Mongodb</p>
<p><a href="https://github.com/agnesoft/agdb">agdb</a> 图数据库</p>
<p><a href="https://github.com/tursodatabase/limbo">limbo</a> 基于异步模型的轻量级嵌入式数据库，兼容Sqlite</p>
<h2 id="操作系统"><a class="header" href="#操作系统">操作系统</a></h2>
<p>待添加</p>
<h2 id="测试性能对比"><a class="header" href="#测试性能对比">测试/性能对比</a></h2>
<p><a href="https://github.com/bheisler/criterion.rs">criterion</a> 测试框架</p>
<p><a href="https://github.com/Canop/bacon">bacon</a> 后台代码编译检测工具</p>
<p><a href="https://github.com/la10736/rstest">rstest</a> 参数化测试和 fixtures</p>
<h2 id="脚本语言"><a class="header" href="#脚本语言">脚本语言</a></h2>
<p><a href="https://github.com/rhaiscript/rhai">rhai</a> 嵌入式脚本语言</p>

                    </main>

                    <nav class="nav-wrapper" aria-label="Page navigation">
                        <!-- Mobile navigation buttons -->
                            <a rel="prev" href="Rust_dev.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
                                <i class="fa fa-angle-left"></i>
                            </a>

                            <a rel="next prefetch" href="Cargo_kits.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
                                <i class="fa fa-angle-right"></i>
                            </a>

                        <div style="clear: both"></div>
                    </nav>
                </div>
            </div>

            <nav class="nav-wide-wrapper" aria-label="Page navigation">
                    <a rel="prev" href="Rust_dev.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
                        <i class="fa fa-angle-left"></i>
                    </a>

                    <a rel="next prefetch" href="Cargo_kits.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
                        <i class="fa fa-angle-right"></i>
                    </a>
            </nav>

        </div>




        <script>
            window.playground_copyable = true;
        </script>


        <script src="elasticlunr.min.js"></script>
        <script src="mark.min.js"></script>
        <script src="searcher.js"></script>

        <script src="clipboard.min.js"></script>
        <script src="highlight.js"></script>
        <script src="book.js"></script>

        <!-- Custom JS scripts -->


    </div>
    </body>
</html>
